SSA Translation Is an Abstract Interpretation

نویسندگان

چکیده

Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow or SMT-based abstract interpretation model checking. However, the precision of SSA translation itself depends on and priori analysis even indispensable in case low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn into standard based interpretation. This allows be combined with other analyses pass, taking advantage fact it more precise combine than applying passes sequence. We illustrate practicality these results by writing simple performs translation, optimistic numbering, conditional constant propagation, loop-invariant code motion small pass; presenting multi-language analyzer for both C uses domain as its main representation.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Certificate Translation in Abstract Interpretation

A certificate is a mathematical object that can be used to establish that a piece of mobile code satisfies some security policy. Since in general certificates cannot be generated automatically, there is an interest in developing methods to reuse certificates. This article formalises in the setting of abstract interpretation a method to transform certificates of program correctness along program...

متن کامل

An Introduction to Abstract Interpretation

Predicate Transformer (Sketchy) ̧P ‹ post[[X:=E]] ‹ ‚P(fq1; : : : ; qng) where fq1; : : : ; qng „ fp1; : : : ; pkg = ̧P ‹ post[[X:=E]]( n \ i=1 I[[qi]]) def. ‚P = ̧P(f[X=[[E]]] j  2 n \ i=1 I[[qi]]g) def. post[[X:=E]] = ̧P( n \ i=1 f[X=[[E]]] j  2 I[[qi]]g) def. \ = ̧P( n \ i=1 I[[qi[X=E]]]) def. substitution = fpj j I[[qi[X=E]) pj]]g def. ̧P ) fpj j theorem_prover[[qi[X=E]) pj]]g since th...

متن کامل

Thread-Modular Verification Is Cartesian Abstract Interpretation

Verification of multithreaded programs is difficult. It requires reasoning about state spaces that grow exponentially in the number of concurrent threads. Successful verification techniques based on modular composition of over-approximations of thread behaviors have been designed for this task. These techniques have been traditionally described in assume-guarantee style, which does not admit re...

متن کامل

-SSA and its Construction through Symbolic Interpretation

In this paper, we propose a new variant of SSA called-SSA and discuss its construction through symbolic interpretation of programs. By relaxing a condition of SSA form without violating the fundamental nature of static single assignment,-SSA form results in a representation which uses fewer join functions than the minimal SSA form. A graph representation called Value Flow Graph (VFG) is used to...

متن کامل

Automatic Loop Parallelization: An Abstract Interpretation Approach

This paper presents an abstract interpretation to support the automatic parallelization of iterative constructs. The analysis approximates the range of values of any array subscript by integrating an interval analysis with one returning a set of simple linear restraints among program variables. To reduce the complexity of the analysis, a general methodology has been adopted that defines two dif...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2023

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3571258